package cn.com.connext.scrm.domain.master;

import com.connext.common.domain.UUIDDomain;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.Date;

/**
 * @Description:
 * @author: ZHaoYul
 * @date: 2021/9/10 15:58
 */
@Entity
@DynamicUpdate
@Table(name = "wx_sendcoupon_info")   // 定义数据库表名
public class MerchantRollDetail implements UUIDDomain, Serializable {
    @Id
    private String id;
    //主表id
    @Column(name = "main_id" )
    private String mainId;
    //优惠金额
    @Column(name = "discount_amount" )
    private Integer discount_amount;
    //消费门槛
    @Column(name = "transaction_minimum" )
    private Integer transaction_minimum;
    //折扣比例
    @Column(name = "discount_percent" )
    private Integer discount_percent;
    //单品换购价
    @Column(name = "exchange_price" )
    private Integer exchange_price;
    //核销方式
    @Column(name = "use_method" )
    private String use_method;
    //小程序appid
    @Column(name = "hx_mini_programs_appid" )
    private String hx_mini_programs_appid;
    //小程序path
    @Column(name = "hx_mini_programs_path" )
    private String hx_mini_programs_path;

    //批次最大发放个数
    @Column(name = "max_coupons" )
    private Integer max_coupons;
    //用户最大可领个数
    @Column(name = "max_coupons_per_user" )
    private Integer max_coupons_per_user;
    //单天发放上限个数
    @Column(name = "max_coupons_by_day" )
    private Integer max_coupons_by_day;
    //是否开启自然人限制 不填默认否，枚举值：
    //true：是
    //false：否
    @Column(name = "natural_person_limit" )
    private boolean natural_person_limit;
    //可疑账号拦截 不填默认否，枚举值：
    //true：是
    //false：否
    @Column(name = "prevent_api_abuse" )
    private boolean prevent_api_abuse;
    //是否允许转赠不填默认否，枚举值：
    //true：是
    //false：否
    @Column(name = "transferable" )
    private boolean transferable;
    //是否允许分享链接	不填默认否，枚举值：
    //true：是
    //false：否
    @Column(name = "shareable" )
    private boolean shareable;
    //商家小程序appid
    @Column(name = "mini_programs_appid" )
    private String mini_programs_appid;
    //商家小程序path
    @Column(name = "mini_programs_path" )
    private String mini_programs_path;
    //入口文案
    @Column(name = "entrance_words" )
    private String entrance_words;
    //引导文案
    @Column(name = "guiding_words" )
    private String guiding_words;
    //商户公众号appid
    @Column(name = "appid" )
    private String appid;
    //营销馆id
    @Column(name = "hall_id" )
    private String hall_id;
    //可用门店id
    @Column(name = "store_id" )
    private String store_id;
    //code展示模式
    @Column(name = "code_display_mode" )
    private String code_display_mode;
    //使用须知
    @Column(name = "description" )
    private String description;
    //商户logo
    @Column(name = "merchant_logo_url" )
    private String merchant_logo_url;
    //商户logo
    @Column(name = "wx_merchant_logo_url" )
    private String wxMerchant_logo_url;
    //商户名称
    @Column(name = "merchant_name" )
    private String merchant_name;
    //背景颜色
    @Column(name = "background_color" )
    private String background_color;
    //券详情图片
    @Column(name = "coupon_image_url" )
    private String coupon_image_url;
    //券详情图片
    @Column(name = "wx_coupon_image_url" )
    private String wxCoupon_image_url;
    //事件通知appid
    @Column(name = "notify_appid" )
    private String notify_appid;

    //可用星期数
    @Column(name = "week_day" )
    private String week_day;
    //当天可用开始时间
    @Column(name = "begin_time" )
    private ZonedDateTime begin_time;
    //当天可用结束时间
    @Column(name = "end_time" )
    private ZonedDateTime end_time;

    //当天可用结束时间
    @Column(name = "wait_days_after_receive" )
    private Integer wait_days_after_receive;

    //openid
    @Column(name = "openid" )
    private String openid;

    //openid
    @Column(name = "unionId" )
    private String unionId;

    @Column(name = "create_time" )
    private Date create_time;
    @Column(name = "update_time" )
    private Date update_time;
    //券的唯一标识。
    @Column(name = "coupon_code" )
    private String coupon_code;
    @Override
    public String getId() {
        return id;
    }

    @Override
    public void setId(String id) {
        this.id = id;
    }

    public String getMainId() {
        return mainId;
    }

    public void setMainId(String mainId) {
        this.mainId = mainId;
    }

    public Integer getDiscount_amount() {
        return discount_amount;
    }

    public void setDiscount_amount(Integer discount_amount) {
        this.discount_amount = discount_amount;
    }

    public Integer getTransaction_minimum() {
        return transaction_minimum;
    }

    public void setTransaction_minimum(Integer transaction_minimum) {
        this.transaction_minimum = transaction_minimum;
    }

    public Integer getDiscount_percent() {
        return discount_percent;
    }

    public void setDiscount_percent(Integer discount_percent) {
        this.discount_percent = discount_percent;
    }

    public Integer getExchange_price() {
        return exchange_price;
    }

    public void setExchange_price(Integer exchange_price) {
        this.exchange_price = exchange_price;
    }

    public String getUse_method() {
        return use_method;
    }

    public void setUse_method(String use_method) {
        this.use_method = use_method;
    }

    public String getHx_mini_programs_appid() {
        return hx_mini_programs_appid;
    }

    public void setHx_mini_programs_appid(String hx_mini_programs_appid) {
        this.hx_mini_programs_appid = hx_mini_programs_appid;
    }

    public String getHx_mini_programs_path() {
        return hx_mini_programs_path;
    }

    public void setHx_mini_programs_path(String hx_mini_programs_path) {
        this.hx_mini_programs_path = hx_mini_programs_path;
    }

    public Integer getMax_coupons() {
        return max_coupons;
    }

    public void setMax_coupons(Integer max_coupons) {
        this.max_coupons = max_coupons;
    }

    public Integer getMax_coupons_per_user() {
        return max_coupons_per_user;
    }

    public void setMax_coupons_per_user(Integer max_coupons_per_user) {
        this.max_coupons_per_user = max_coupons_per_user;
    }

    public Integer getMax_coupons_by_day() {
        return max_coupons_by_day;
    }

    public void setMax_coupons_by_day(Integer max_coupons_by_day) {
        this.max_coupons_by_day = max_coupons_by_day;
    }

    public boolean isNatural_person_limit() {
        return natural_person_limit;
    }

    public void setNatural_person_limit(boolean natural_person_limit) {
        this.natural_person_limit = natural_person_limit;
    }

    public boolean isPrevent_api_abuse() {
        return prevent_api_abuse;
    }

    public void setPrevent_api_abuse(boolean prevent_api_abuse) {
        this.prevent_api_abuse = prevent_api_abuse;
    }

    public boolean isTransferable() {
        return transferable;
    }

    public void setTransferable(boolean transferable) {
        this.transferable = transferable;
    }

    public boolean isShareable() {
        return shareable;
    }

    public void setShareable(boolean shareable) {
        this.shareable = shareable;
    }

    public String getMini_programs_appid() {
        return mini_programs_appid;
    }

    public void setMini_programs_appid(String mini_programs_appid) {
        this.mini_programs_appid = mini_programs_appid;
    }

    public String getMini_programs_path() {
        return mini_programs_path;
    }

    public void setMini_programs_path(String mini_programs_path) {
        this.mini_programs_path = mini_programs_path;
    }

    public String getEntrance_words() {
        return entrance_words;
    }

    public void setEntrance_words(String entrance_words) {
        this.entrance_words = entrance_words;
    }

    public String getGuiding_words() {
        return guiding_words;
    }

    public void setGuiding_words(String guiding_words) {
        this.guiding_words = guiding_words;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getHall_id() {
        return hall_id;
    }

    public void setHall_id(String hall_id) {
        this.hall_id = hall_id;
    }

    public String getStore_id() {
        return store_id;
    }

    public void setStore_id(String store_id) {
        this.store_id = store_id;
    }

    public String getCode_display_mode() {
        return code_display_mode;
    }

    public void setCode_display_mode(String code_display_mode) {
        this.code_display_mode = code_display_mode;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getMerchant_logo_url() {
        return merchant_logo_url;
    }

    public void setMerchant_logo_url(String merchant_logo_url) {
        this.merchant_logo_url = merchant_logo_url;
    }

    public String getMerchant_name() {
        return merchant_name;
    }

    public void setMerchant_name(String merchant_name) {
        this.merchant_name = merchant_name;
    }

    public String getBackground_color() {
        return background_color;
    }

    public void setBackground_color(String background_color) {
        this.background_color = background_color;
    }

    public String getCoupon_image_url() {
        return coupon_image_url;
    }

    public void setCoupon_image_url(String coupon_image_url) {
        this.coupon_image_url = coupon_image_url;
    }

    public String getNotify_appid() {
        return notify_appid;
    }

    public void setNotify_appid(String notify_appid) {
        this.notify_appid = notify_appid;
    }

    public String getWeek_day() {
        return week_day;
    }

    public void setWeek_day(String week_day) {
        this.week_day = week_day;
    }

    public ZonedDateTime getBegin_time() {
        return begin_time;
    }

    public void setBegin_time(ZonedDateTime begin_time) {
        this.begin_time = begin_time;
    }

    public ZonedDateTime getEnd_time() {
        return end_time;
    }

    public void setEnd_time(ZonedDateTime end_time) {
        this.end_time = end_time;
    }

    public Integer getWait_days_after_receive() {
        return wait_days_after_receive;
    }

    public void setWait_days_after_receive(Integer wait_days_after_receive) {
        this.wait_days_after_receive = wait_days_after_receive;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getUnionId() {
        return unionId;
    }

    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public Date getUpdate_time() {
        return update_time;
    }

    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }

    public String getCoupon_code() {
        return coupon_code;
    }

    public void setCoupon_code(String coupon_code) {
        this.coupon_code = coupon_code;
    }

    public String getWxMerchant_logo_url() {
        return wxMerchant_logo_url;
    }

    public void setWxMerchant_logo_url(String wxMerchant_logo_url) {
        this.wxMerchant_logo_url = wxMerchant_logo_url;
    }

    public String getWxCoupon_image_url() {
        return wxCoupon_image_url;
    }

    public void setWxCoupon_image_url(String wxCoupon_image_url) {
        this.wxCoupon_image_url = wxCoupon_image_url;
    }
}
